The field of the present disclosure relates generally to imaging, and more particularly but not exclusively to reading of optical codes such as, for example, barcodes.
Optical codes encode useful, optically-readable information about the items to which they are attached or otherwise associated. Perhaps the best example of an optical code is the barcode. Barcodes are ubiquitously found on or associated with objects of various types, such as the packaging of retail (e.g., the UPC code), wholesale, and inventory goods; retail product presentation fixtures (e.g., shelves); goods undergoing manufacturing; personal or company assets; documents; and document files. By encoding information, a barcode typically serves as an identifier of an object, whether the identification be to a class of objects (e.g., containers of milk) or a unique item.
Barcodes include alternating bars (i.e., relatively dark areas) and spaces (i.e., relatively light areas). The pattern of alternating bars and spaces and the widths of those bars and spaces represent a string of binary ones and zeros, wherein the width of any particular bar or space is an integer multiple of a specified minimum width, which is called a “module” or “unit.” Thus, to decode the information, a barcode reader must be able to reliably discern the pattern of bars and spaces, such as by determining the locations of edges demarking adjacent bars and spaces from one another, across the entire length of the barcode.
Barcodes are just one example of the many types of optical codes in use today. The most common barcodes are one-dimensional or linear optical codes, such as the UPC code or Code 39 barcode, where the information is encoded in one direction—the direction perpendicular to the bars and spaces. Higher-dimensional optical codes, such as, two-dimensional matrix codes (e.g., MaxiCode) or stacked codes (e.g., PDF 417), which are also sometimes referred to as “barcodes,” are also used for various purposes.
An imager-based reader utilizes a camera or imager to generate electronic image data (typically in digital form) of an optical code. The image data is then processed to find and decode the optical code. For example, virtual scan line techniques are known techniques for digitally processing an image containing an optical code by looking across an image along a plurality of lines, typically spaced apart and at various angles, somewhat similar to the scan pattern of a laser beam in a laser-based scanner.
Imager-based readers often can only form images from one perspective—usually that of a normal vector out of the face of the imager. Imager-based readers may acquire images using ambient light or they may include illumination sources, e.g. LED's. When labels are oriented such that light from the illumination source is reflected directly back into the imager, the imager may fail to read properly due to uniform reflection washing out the desired image entirely, or the imager may fail to read properly due to reflection from a textured specular surface washing out one or more elements. This effect may cause reading of shiny labels to be problematic at particular reflective angles and labels oriented at extreme acute angles relative to the imager may not be readable. Moreover, outgoing illumination tends to undesirably reflect off the rear and front sides of the window and back onto the imager. In the case of fixed scanners, the view size at scanner nose needs to be large, typically 50 mm to 100 mm, which means the distance from imager to scanner nose needs to be long, for some scanners on the order of 70 mm to 120 mm. These and other physical and functional constraints make it difficult to achieve compact arrangement of data reader components, namely the window, printed circuit boards (PCB's), internal mirrors, and the imager.
The present inventor has, therefore, determined that it would be desirable to provide an imager-based reader that improves on the limitations of existing imager-based readers.